home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / service < prev    next >
Text File  |  2008-10-14  |  3KB  |  106 lines

  1. #!/bin/sh
  2.  
  3. ###########################################################################
  4. # /usr/bin/service
  5. #
  6. # A convenient wrapper for the /etc/init.d init scripts.
  7. #
  8. # This script is a modified version of the /sbin/service utility found on
  9. # Red Hat/Fedora systems (licensed GPLv2+).
  10. #
  11. # Copyright (C) 2006 Red Hat, Inc. All rights reserved.
  12. # Copyright (C) 2008 Canonical Ltd.
  13. #   * August 2008 - Dustin Kirkland <kirkland@canonical.com>
  14. #
  15. # This program is free software; you can redistribute it and/or modify
  16. # it under the terms of the GNU General Public License as published by
  17. # the Free Software Foundation; either version 2 of the License, or
  18. # (at your option) any later version.
  19. #
  20. # This program is distributed in the hope that it will be useful,
  21. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  22. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  23. # GNU General Public License for more details.
  24. #
  25. # You should have received a copy of the GNU General Public License
  26. # along with this program; if not, write to the Free Software
  27. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  28. #
  29. # On Debian GNU/Linux systems, the complete text of the GNU General
  30. # Public License can be found in `/usr/share/common-licenses/GPL'.
  31. ###########################################################################
  32.  
  33.  
  34. is_ignored_file() {
  35.     case "$1" in
  36.         skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh)
  37.             return 0
  38.         ;;
  39.     esac
  40.     return 1
  41. }
  42.  
  43. VERSION="`basename $0` ver. 0.91-ubuntu1"
  44. USAGE="Usage: `basename $0` < option > | --status-all | \
  45. [ service_name [ command | --full-restart ] ]"
  46. INVOKERC="invoke-rc.d --force --quiet"
  47. SERVICE=
  48. SERVICEDIR="/etc/init.d"
  49. OPTIONS=
  50.  
  51. if [ $# -eq 0 ]; then
  52.    echo "${USAGE}" >&2
  53.    exit 1
  54. fi
  55.  
  56. cd /
  57. while [ $# -gt 0 ]; do
  58.   case "${1}" in
  59.     --help | -h | --h* )
  60.        echo "${USAGE}" >&2
  61.        exit 0
  62.        ;;
  63.     --version | -V )
  64.        echo "${VERSION}" >&2
  65.        exit 0
  66.        ;;
  67.     *)
  68.        if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
  69.           cd ${SERVICEDIR}
  70.           for SERVICE in * ; do
  71.             case "${SERVICE}" in
  72.               functions | halt | killall | single| linuxconf| kudzu)
  73.                   ;;
  74.               *)
  75.                 if ! is_ignored_file "${SERVICE}" \
  76.             && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  77.                   env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" $INVOKERC "$SERVICE" status
  78.                 fi
  79.                 ;;
  80.             esac
  81.           done
  82.           exit 0
  83.        elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
  84.           SERVICE="${1}"
  85.           if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  86.             env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" $INVOKERC "$SERVICE" stop
  87.             env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" $INVOKERC "$SERVICE" start
  88.             exit $?
  89.           fi
  90.        elif [ -z "${SERVICE}" ]; then
  91.          SERVICE="${1}"
  92.        else
  93.          OPTIONS="${OPTIONS} ${1}"
  94.        fi
  95.        shift
  96.        ;;
  97.    esac
  98. done
  99.  
  100. if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
  101.    env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" $INVOKERC "$SERVICE" ${OPTIONS}
  102. else
  103.    echo $"${SERVICE}: unrecognized service" >&2
  104.    exit 1
  105. fi
  106.